package com.ruoyi.system.domain;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.TableField;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 发票申请对象 tb_invoice_requests
 * 
 * @author ruoyi
 * @date 2025-04-26
 */
public class TbInvoiceRequests extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 发票申请ID */
    @Excel(name = "发票申请ID")
    private Long id;

    /** 用户ID */
    private Long userId;

    /** 关联的行程ID数组，如[1001,1002,1003] */
    private Long tripIds;

    /** 发票抬头 */
    @Excel(name = "发票抬头")
    private String invoiceTitle;

    /** 纳税人识别号 */
    @Excel(name = "纳税人识别号")
    private String taxNumber;

    /** 发票类型：1-个人，2-企业 */
    @Excel(name = "发票类型：1-个人，2-企业")
    private Long invoiceType;

    /** 联系电话 */
    @Excel(name = "联系电话")
    private String contactPhone;

    /** 联系邮箱 */
    @Excel(name = "联系邮箱")
    private String contactEmail;

    /** 开票金额(元) */
    @Excel(name = "开票金额(元)")
    private BigDecimal amount;

    /** 状态：0-待处理，1-处理中，2-已完成，3-已取消 */
    @Excel(name = "状态：0-待处理，1-处理中，2-已完成，3-已取消")
    private Long status;

    /** 发票文件URL地址 */
    @Excel(name = "发票文件URL地址")
    private String fileUrl;

    @TableField(exist = false)
    private String company;

    public String getCompany() {
        return company;
    }

    public void setCompany(String company) {
        this.company = company;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }

    public Long getTripIds() {
        return tripIds;
    }

    public void setTripIds(Long tripIds) {
        this.tripIds = tripIds;
    }

    public void setInvoiceTitle(String invoiceTitle)
    {
        this.invoiceTitle = invoiceTitle;
    }

    public String getInvoiceTitle() 
    {
        return invoiceTitle;
    }
    public void setTaxNumber(String taxNumber) 
    {
        this.taxNumber = taxNumber;
    }

    public String getTaxNumber() 
    {
        return taxNumber;
    }
    public void setInvoiceType(Long invoiceType) 
    {
        this.invoiceType = invoiceType;
    }

    public Long getInvoiceType() 
    {
        return invoiceType;
    }
    public void setContactPhone(String contactPhone) 
    {
        this.contactPhone = contactPhone;
    }

    public String getContactPhone() 
    {
        return contactPhone;
    }
    public void setContactEmail(String contactEmail) 
    {
        this.contactEmail = contactEmail;
    }

    public String getContactEmail() 
    {
        return contactEmail;
    }
    public void setAmount(BigDecimal amount) 
    {
        this.amount = amount;
    }

    public BigDecimal getAmount() 
    {
        return amount;
    }
    public void setStatus(Long status) 
    {
        this.status = status;
    }

    public Long getStatus() 
    {
        return status;
    }
    public void setFileUrl(String fileUrl) 
    {
        this.fileUrl = fileUrl;
    }

    public String getFileUrl() 
    {
        return fileUrl;
    }


    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("userId", getUserId())
            .append("tripIds", getTripIds())
            .append("invoiceTitle", getInvoiceTitle())
            .append("taxNumber", getTaxNumber())
            .append("invoiceType", getInvoiceType())
            .append("contactPhone", getContactPhone())
            .append("contactEmail", getContactEmail())
            .append("amount", getAmount())
            .append("status", getStatus())
            .append("fileUrl", getFileUrl())
            .append("remark", getRemark())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
